package test.specs.atualizausuario;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.notNullValue;

import org.jbehave.core.annotations.Given;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;

import br.com.ffm.info.praticas.fiptwitter.FipTwitter;
import br.com.ffm.info.praticas.fiptwitter.Usuario;

public class NovaAlteracaoUsuarioCenario {
	
	private FipTwitter twitter;	
	private Exception resultException;
	private Usuario u;

	@Given ("eu ja tenha cadastrado o usuario de login CptoNascimento de nome Capitão Nascimento e senha nuncaserao")
	public void dadoQueCrioUmUsuario(){
		twitter = new FipTwitter();
		u = twitter.novoUsuario("Capitão Nascimento", "CptoNascimento", "nuncaserao");
		try{
			twitter.buscarUsuario(u.getLogin());
		}
		catch(Exception e){
			resultException = e;
		}
		
	}
	
	@When ("Quando tento editar a biografia do usuário passando o login CptoNascimento senha nuncaserao e a nova biografia Comandante geral do BOPE ")
	public void editarBiografia(String biografia){
		try{
			u = twitter.logarTwitter("CptoNascimento","nuncaserao");
		}
		catch(Exception e){
			resultException = e;
		}
		try{
			twitter.editarBiografia(u, "Comandante geral do BOPE");
		}
		catch(Exception ex){
			resultException = ex;
		}
	}
	
	@When ("Quando tento editar o email do usuário passando o login CptoNascimento senha nuncaserao e o novo email comandantenascimento@bope-rj.com.br ")
	public void editarEmail(String biografia){
		try{
			u = twitter.logarTwitter("CptoNascimento","nuncaserao");
		}
		catch(Exception e){
			resultException = e;
		}
		try{
			twitter.editarEmail(u, "(comandantenascimento@bope-rj.com.br");
		}
		catch(Exception ex){
			resultException = ex;
		}
	}
	
	@When ("Quando tento editar o website do usuário passando o login CptoNascimento senha nuncaserao e o novo site www.eusoufodadenovo.com.br ")
	public void editarWebsite(String biografia){
		try{
			u = twitter.logarTwitter("CptoNascimento","nuncaserao");
		}
		catch(Exception e){
			resultException = e;
		}
		try{
			twitter.editarWebsite(u, "www.eusoufodadenovo.com.br");
		}
		catch(Exception ex){
			resultException = ex;
		}
	}
	
	@When ("Quando tento editar a localização do usuário passando o login CptoNascimento senha nuncaserao e a nova localização Cidade Maravilhosa")
	public void editaBiografia(String biografia){
		try{
			u = twitter.logarTwitter("CptoNascimento","nuncaserao");
		}
		catch(Exception e){
			resultException = e;
		}
		try{
			twitter.editarLocalização(u, "Cidade Maravilhosa");
		}
		catch(Exception ex){
			resultException = ex;
		}
	}





	@Then ("o biografia do usuário deve ser igual a Comandante geral do BOPE")
	public void biografiaUsuarioIgualAoNovaBiografia(String erro){
		assertThat(resultException, notNullValue());
		assertThat(erro, equalTo(resultException.getMessage()));
	}
	
	@Then ("o email do usuário deve ser igual a comandantenascimento@bope-rj.com.br")
	public void emailUsuarioIgualAoNovoEmail(String erro){
		assertThat(resultException, notNullValue());
		assertThat(erro, equalTo(resultException.getMessage()));
	}
	
	@Then ("o website do usuário deve ser igual a www.eusoufodadenovo.com.br")
	public void websiteUsuarioIgualAoNovoWebsite(String erro){
		assertThat(resultException, notNullValue());
		assertThat(erro, equalTo(resultException.getMessage()));
	}
	
	@Then ("a localização do usuário deve ser igual a Cidade Maravilhosa")
	public void localizaçãoUsuarioIgualAoNovaLocalização(String erro){
		assertThat(resultException, notNullValue());
		assertThat(erro, equalTo(resultException.getMessage()));
	}


}
